package File;

import java.io.*;
import java.util.Scanner;

//进行普通文件的复制操作；
//所谓复制就是将一个文件中每个字节都读出来，写到另个一个文件中；
public class Demo13 {
    public static void main(String[] args) throws FileNotFoundException {
        //首先进行输入两个文件的路径，方便进行复制操作；
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你的源文件的路径");
        String srcPath=scanner.next();
        System.out.println("请输入你要复到的目标文件");
        String destPath=scanner.next();
        //接下来进行判断源文件的路径是否存在；
        File srcFile=new File(srcPath);
        if(!srcFile.isFile()){
            System.out.println("源文件路径不存在");
            return;
        }
        //经过上述的判断，说明源文件的路径存在，接下来进行考虑目标文件；
        //对于目标文件：要求该路径不管存不存在该文件，但是必须要求存在目录文件；
        //也就该路径有根目录文件夹；
        File destFile=new File(destPath);
        if(!destFile.getParentFile().isDirectory()){
            System.out.println("该目标路径不可靠");
            return;
        }else{
            //该目标路径存在目录文件；
            //进行复制操作；
            try(InputStream inputStream=new FileInputStream(srcFile);
                OutputStream outputStream=new FileOutputStream(destFile)) {
                //首先进行从目标文件中进行读操作；
                while(true){
                    byte[] date=new byte[128];
                    int n=inputStream.read(date);//此出会将读的内容存到数组中；
                    if(n==-1){
                        break;
                    }
                    //进行将读到的内容写入到目标文件中；
                    //怎么可以写进去呢？？？
                    //通过数组作为桥梁即可写进行；
                    outputStream.write(date,0,n);//写操作；
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

    }
}
